package com.iwdnb.gkgz.common.utils;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Objects;

import com.alibaba.fastjson.JSON;

import com.iwdnb.bmnf.common.utils.BeanConvertUtils;
import com.iwdnb.gkgz.common.model.dto.StockDayData;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;

/**
 * 代码解释：
 * 数据模拟：
 *
 * overnightReturns 是一个示例列表，包含成分股的隔夜收益率。在实际应用中，你可能需要从API或数据库中获取这些数据。
 * 均值和分位数的计算：
 *
 * 使用 calculateMean 方法计算收益率的均值。
 * 使用 calculatePercentile 方法计算 5% 和 95% 的分位数。
 * 情绪判断：
 *
 * 根据给定的 closeRate（当日收益率），与计算得出的分位数和均值进行比较，输出相应的情绪分析结果。
 * 替代数据来源：
 * 在实际部署中，您可以使用股票行情API（如腾讯财经、Wind、聚宽等）来获取实时的成分股数据，并替换这些模拟数据。
 */
@Slf4j
public class StockEmotionUtils {
    public static final int COLD_EMOTION = 1;
    public static final int NORMAL_EMOTION = 5;
    public static final int WARM_EMOTION = 7;

    public static final int HOT_EMOTION = 9;

    public static EmotionData caculateOpenEmotion(List<StockDayData> stockDayDataList) {
        stockDayDataList = BeanConvertUtils.convertList(stockDayDataList, StockDayData.class);
        for (StockDayData stockDayData : stockDayDataList) {
            stockDayData.setClosePrice(stockDayData.getOpenPrice());
        }
        return caculateEmotion(stockDayDataList);
    }

    public static EmotionData caculateEmotion(List<StockDayData> stockDayDataList) {
        // 模拟成分股的隔夜收益率
        List<Double> overnightProfits = new ArrayList<>();
        List<Double> closeProfits = new ArrayList<>();
        for (StockDayData stockDayData : stockDayDataList) {
            BigDecimal beforeClosePrice = stockDayData.getBeforeClosePrice();
            if (Objects.isNull(beforeClosePrice)) {
                beforeClosePrice = stockDayData.getOpenPrice();
            }
            BigDecimal openRate = BigDecimalUtils.subStractAndDividePrecent(stockDayData.getOpenPrice(),
                beforeClosePrice);
            BigDecimal closeRate = BigDecimalUtils.subStractAndDividePrecent(stockDayData.getClosePrice(),
                beforeClosePrice);
            overnightProfits.add(openRate.doubleValue());
            closeProfits.add(closeRate.doubleValue());
        }
        // 今天的闭市收益率
        double closeRate = calculateAvg(closeProfits);
        // 计算均值、5%分位和95%分位
        double overnightRate = calculateAvg(overnightProfits);
        //排序
        Collections.sort(overnightProfits);
        double minPercentile = calculatePercentile(overnightProfits, 5);
        double lowPercentile = calculatePercentile(overnightProfits, 10);
        double middlePercentile = calculatePercentile(overnightProfits, 50);
        double highPercentile = calculatePercentile(overnightProfits, 90);
        double maxPercentile = calculatePercentile(overnightProfits, 95);
        if (maxPercentile < 0.5) {
            maxPercentile = maxPercentile + 1;
        }

        // 情绪判断
        return analyzeEmotion(closeRate, minPercentile, lowPercentile, middlePercentile, highPercentile, maxPercentile,
            overnightRate);
    }

    private static double calculateAvg(List<Double> values) {
        double sum = 0;
        for (double value : values) {
            sum += value;
        }
        return sum / values.size();
    }

    private static double calculatePercentile(List<Double> values, double percentile) {
        int index = (int)Math.ceil(percentile / 100 * values.size()) - 1;
        return values.get(index);
    }

    private static EmotionData analyzeEmotion(double closeRate, double minPercentile, double lowPercentile,
        double middlePercentile, double highPercentile, double maxPercentile, double overnightRate) {
        log.info("closeRate:{},overnightRate:{},min:{},low:{},middle:{},high:{},max:{}", BigDecimalUtils.of(closeRate),
            BigDecimalUtils.of(overnightRate), BigDecimalUtils.of(minPercentile), BigDecimalUtils.of(lowPercentile),
            BigDecimalUtils.of(middlePercentile), BigDecimalUtils.of(highPercentile),
            BigDecimalUtils.of(maxPercentile));
        overnightRate = overnightRate * 0.5;
        EmotionData data = new EmotionData();
        data.setCurrentValue(BigDecimalUtils.of(closeRate));
        data.setMinValue(BigDecimalUtils.of(minPercentile - overnightRate));
        data.setLowValue(BigDecimalUtils.of(lowPercentile - overnightRate));
        data.setHighValue(BigDecimalUtils.of(highPercentile + overnightRate));
        data.setMaxValue(BigDecimalUtils.of(maxPercentile + overnightRate));
        if (closeRate < minPercentile - overnightRate) {
            log.info("情绪冰点，空仓");
            data.setEmotionValue(1);
        } else if (closeRate < lowPercentile - overnightRate) {
            log.info("情绪转冷，减仓");
            data.setEmotionValue(3);
        } else if (closeRate < highPercentile + overnightRate) {
            log.info("静观其变");
            data.setEmotionValue(5);
        } else if (closeRate < maxPercentile + overnightRate) {
            log.info("情绪转暖，加仓");
            data.setEmotionValue(7);
        } else {
            log.info("情绪火热，满仓");
            data.setEmotionValue(9);
        }
        return data;
    }

    public static boolean isMarkEmotion(int emotion) {
        return emotion == 1 || emotion == 7 || emotion == 9;
    }

    public static boolean isColdEmotion(int emotion) {
        return emotion == 1;
    }

    public static boolean isHotEmotion(int emotion) {
        return emotion == 9;
    }

    public static boolean isActiveEmotion(int emotion) {
        return emotion >= 7;
    }

    public static boolean isNegativeEmotion(int emotion) {
        return emotion <= 3;
    }

    public static boolean isSensitiveEmotion(int emotion) {
        return emotion == 5;
    }

    @Data
    public static class EmotionData {
        private BigDecimal currentValue;

        private BigDecimal minValue;

        private BigDecimal lowValue;

        private BigDecimal highValue;

        private BigDecimal maxValue;

        private Integer emotionValue;
    }

    public static void main(String[] args) {
        String json = "[{\"code\":\"sh603398\",\"beforeClosePrice\":20.76,\"openPrice\":20.76},{\"code\":\"sz000869\","
            + "\"beforeClosePrice\":22.04,\"openPrice\":22.01},{\"code\":\"sz002183\",\"beforeClosePrice\":4.13,"
            + "\"openPrice\":4.12},{\"code\":\"sz002127\",\"beforeClosePrice\":4.75,\"openPrice\":4.70},"
            + "{\"code\":\"sz002275\",\"beforeClosePrice\":16.28,\"openPrice\":15.95},{\"code\":\"sz002081\","
            + "\"beforeClosePrice\":3.43,\"openPrice\":3.42},{\"code\":\"sz002250\",\"beforeClosePrice\":5.26,"
            + "\"openPrice\":5.25},{\"code\":\"sz002985\",\"beforeClosePrice\":21.00,\"openPrice\":21.03},"
            + "{\"code\":\"sz002096\",\"beforeClosePrice\":11.32,\"openPrice\":11.33},{\"code\":\"sz002705\","
            + "\"beforeClosePrice\":14.93,\"openPrice\":14.99},{\"code\":\"sz002265\",\"beforeClosePrice\":27.70,"
            + "\"openPrice\":27.70},{\"code\":\"sz000837\",\"beforeClosePrice\":8.09,\"openPrice\":8.09},"
            + "{\"code\":\"sz000415\",\"beforeClosePrice\":3.47,\"openPrice\":3.47},{\"code\":\"sz001287\","
            + "\"beforeClosePrice\":18.10,\"openPrice\":18.15},{\"code\":\"sh601326\",\"beforeClosePrice\":3.25,"
            + "\"openPrice\":3.25},{\"code\":\"sh600976\",\"beforeClosePrice\":42.26,\"openPrice\":42.16},"
            + "{\"code\":\"sz002275\",\"beforeClosePrice\":16.28,\"openPrice\":15.95},{\"code\":\"sz000719\","
            + "\"beforeClosePrice\":11.12,\"openPrice\":11.12},{\"code\":\"sz002458\",\"beforeClosePrice\":9.13,"
            + "\"openPrice\":9.16},{\"code\":\"sz002221\",\"beforeClosePrice\":9.53,\"openPrice\":9.49},"
            + "{\"code\":\"sh600409\",\"beforeClosePrice\":5.28,\"openPrice\":5.27},{\"code\":\"sh600195\","
            + "\"beforeClosePrice\":6.45,\"openPrice\":6.47},{\"code\":\"sz002265\",\"beforeClosePrice\":27.70,"
            + "\"openPrice\":27.70},{\"code\":\"sh600782\",\"beforeClosePrice\":3.37,\"openPrice\":3.35},"
            + "{\"code\":\"sh600601\",\"beforeClosePrice\":4.04,\"openPrice\":4.04},{\"code\":\"sz000869\","
            + "\"beforeClosePrice\":22.04,\"openPrice\":22.01},{\"code\":\"sz002183\",\"beforeClosePrice\":4.13,"
            + "\"openPrice\":4.12},{\"code\":\"sz000420\",\"beforeClosePrice\":3.37,\"openPrice\":3.39},"
            + "{\"code\":\"sh600409\",\"beforeClosePrice\":5.28,\"openPrice\":5.27},{\"code\":\"sz002183\","
            + "\"beforeClosePrice\":4.13,\"openPrice\":4.12},{\"code\":\"sz002250\",\"beforeClosePrice\":5.26,"
            + "\"openPrice\":5.25},{\"code\":\"sz000420\",\"beforeClosePrice\":3.37,\"openPrice\":3.39},"
            + "{\"code\":\"sz002275\",\"beforeClosePrice\":16.28,\"openPrice\":15.95},{\"code\":\"sz002866\","
            + "\"beforeClosePrice\":14.78,\"openPrice\":14.81},{\"code\":\"sh603719\",\"beforeClosePrice\":15.53,"
            + "\"openPrice\":15.59},{\"code\":\"sh603100\",\"beforeClosePrice\":20.82,\"openPrice\":20.80},"
            + "{\"code\":\"sz000552\",\"beforeClosePrice\":2.67,\"openPrice\":2.67},{\"code\":\"sz000821\","
            + "\"beforeClosePrice\":11.86,\"openPrice\":11.86},{\"code\":\"sh601101\",\"beforeClosePrice\":8.13,"
            + "\"openPrice\":8.08},{\"code\":\"sh603477\",\"beforeClosePrice\":16.99,\"openPrice\":16.97},"
            + "{\"code\":\"sh603057\",\"beforeClosePrice\":17.07,\"openPrice\":17.11},{\"code\":\"sh601022\","
            + "\"beforeClosePrice\":7.76,\"openPrice\":7.75},{\"code\":\"sh603871\",\"beforeClosePrice\":18.75,"
            + "\"openPrice\":18.76},{\"code\":\"sh600064\",\"beforeClosePrice\":7.48,\"openPrice\":7.50},"
            + "{\"code\":\"sh600633\",\"beforeClosePrice\":9.53,\"openPrice\":9.54},{\"code\":\"sz002416\","
            + "\"beforeClosePrice\":14.17,\"openPrice\":14.30},{\"code\":\"sz002583\",\"beforeClosePrice\":12.67,"
            + "\"openPrice\":12.80},{\"code\":\"sz002424\",\"beforeClosePrice\":3.85,\"openPrice\":3.83},"
            + "{\"code\":\"sz002434\",\"beforeClosePrice\":5.82,\"openPrice\":5.84},{\"code\":\"sz002701\","
            + "\"beforeClosePrice\":5.33,\"openPrice\":5.34},{\"code\":\"sh603719\",\"beforeClosePrice\":15.53,"
            + "\"openPrice\":15.59},{\"code\":\"sh600201\",\"beforeClosePrice\":6.60,\"openPrice\":6.61},"
            + "{\"code\":\"sh601019\",\"beforeClosePrice\":11.22,\"openPrice\":11.10},{\"code\":\"sh603983\","
            + "\"beforeClosePrice\":31.65,\"openPrice\":31.01},{\"code\":\"sh603477\",\"beforeClosePrice\":16.99,"
            + "\"openPrice\":16.97},{\"code\":\"sh605020\",\"beforeClosePrice\":19.20,\"openPrice\":19.20},"
            + "{\"code\":\"sh603281\",\"beforeClosePrice\":24.22,\"openPrice\":24.33},{\"code\":\"sz000686\","
            + "\"beforeClosePrice\":7.39,\"openPrice\":7.43},{\"code\":\"sz002124\",\"beforeClosePrice\":2.68,"
            + "\"openPrice\":2.67},{\"code\":\"sz001236\",\"beforeClosePrice\":8.93,\"openPrice\":8.97},"
            + "{\"code\":\"sz001301\",\"beforeClosePrice\":64.71,\"openPrice\":64.72},{\"code\":\"sz002003\","
            + "\"beforeClosePrice\":13.75,\"openPrice\":13.77},{\"code\":\"sh603297\",\"beforeClosePrice\":89.83,"
            + "\"openPrice\":88.94},{\"code\":\"sz002006\",\"beforeClosePrice\":15.16,\"openPrice\":15.16},"
            + "{\"code\":\"sh600403\",\"beforeClosePrice\":2.82,\"openPrice\":2.82},{\"code\":\"sh603123\","
            + "\"beforeClosePrice\":7.66,\"openPrice\":7.77},{\"code\":\"sz002011\",\"beforeClosePrice\":10.80,"
            + "\"openPrice\":10.80},{\"code\":\"sh600400\",\"beforeClosePrice\":2.36,\"openPrice\":2.37},"
            + "{\"code\":\"sh600508\",\"beforeClosePrice\":12.83,\"openPrice\":12.83},{\"code\":\"sz002946\","
            + "\"beforeClosePrice\":15.86,\"openPrice\":15.64},{\"code\":\"sz002317\",\"beforeClosePrice\":13.09,"
            + "\"openPrice\":13.10},{\"code\":\"sz001270\",\"beforeClosePrice\":34.37,\"openPrice\":34.42},"
            + "{\"code\":\"sz002004\",\"beforeClosePrice\":4.46,\"openPrice\":4.45},{\"code\":\"sh600120\","
            + "\"beforeClosePrice\":4.35,\"openPrice\":4.35},{\"code\":\"sz002174\",\"beforeClosePrice\":9.03,"
            + "\"openPrice\":8.99},{\"code\":\"sh600811\",\"beforeClosePrice\":2.06,\"openPrice\":2.06},"
            + "{\"code\":\"sh603032\",\"beforeClosePrice\":12.95,\"openPrice\":12.95},{\"code\":\"sh600478\","
            + "\"beforeClosePrice\":3.98,\"openPrice\":3.94},{\"code\":\"sh603297\",\"beforeClosePrice\":89.83,"
            + "\"openPrice\":88.94},{\"code\":\"sh600403\",\"beforeClosePrice\":2.82,\"openPrice\":2.82},"
            + "{\"code\":\"sz002317\",\"beforeClosePrice\":13.09,\"openPrice\":13.10},{\"code\":\"sh601860\","
            + "\"beforeClosePrice\":2.74,\"openPrice\":2.73},{\"code\":\"sz001258\",\"beforeClosePrice\":6.92,"
            + "\"openPrice\":6.95},{\"code\":\"sh600478\",\"beforeClosePrice\":3.98,\"openPrice\":3.94},"
            + "{\"code\":\"sh600403\",\"beforeClosePrice\":2.82,\"openPrice\":2.82},{\"code\":\"sz002724\","
            + "\"beforeClosePrice\":4.74,\"openPrice\":4.77},{\"code\":\"sz000681\",\"beforeClosePrice\":19.81,"
            + "\"openPrice\":19.82},{\"code\":\"sh603567\",\"beforeClosePrice\":11.67,\"openPrice\":11.67},"
            + "{\"code\":\"sh603396\",\"beforeClosePrice\":25.16,\"openPrice\":25.16},{\"code\":\"sh600691\","
            + "\"beforeClosePrice\":2.15,\"openPrice\":2.13},{\"code\":\"sh600869\",\"beforeClosePrice\":4.44,"
            + "\"openPrice\":4.43},{\"code\":\"sh603055\",\"beforeClosePrice\":10.73,\"openPrice\":10.66},"
            + "{\"code\":\"sh600691\",\"beforeClosePrice\":2.15,\"openPrice\":2.13},{\"code\":\"sz002038\","
            + "\"beforeClosePrice\":8.25,\"openPrice\":7.99},{\"code\":\"sz002724\",\"beforeClosePrice\":4.74,"
            + "\"openPrice\":4.77},{\"code\":\"sh600675\",\"beforeClosePrice\":2.70,\"openPrice\":2.71},"
            + "{\"code\":\"sh600888\",\"beforeClosePrice\":7.02,\"openPrice\":7.04},{\"code\":\"sz000681\","
            + "\"beforeClosePrice\":19.81,\"openPrice\":19.82},{\"code\":\"sh601702\",\"beforeClosePrice\":17.83,"
            + "\"openPrice\":17.84},{\"code\":\"sh600610\",\"beforeClosePrice\":3.93,\"openPrice\":3.93},"
            + "{\"code\":\"sh603306\",\"beforeClosePrice\":30.30,\"openPrice\":30.30},{\"code\":\"sz000681\","
            + "\"beforeClosePrice\":19.81,\"openPrice\":19.82},{\"code\":\"sh601702\",\"beforeClosePrice\":17.83,"
            + "\"openPrice\":17.84},{\"code\":\"sh600610\",\"beforeClosePrice\":3.93,\"openPrice\":3.93},"
            + "{\"code\":\"sh603306\",\"beforeClosePrice\":30.30,\"openPrice\":30.30},{\"code\":\"sh603995\","
            + "\"beforeClosePrice\":18.42,\"openPrice\":18.40},{\"code\":\"sz000966\",\"beforeClosePrice\":4.56,"
            + "\"openPrice\":4.56},{\"code\":\"sh600007\",\"beforeClosePrice\":23.86,\"openPrice\":23.95},"
            + "{\"code\":\"sh600877\",\"beforeClosePrice\":12.58,\"openPrice\":12.57},{\"code\":\"sz002612\","
            + "\"beforeClosePrice\":15.64,\"openPrice\":15.68},{\"code\":\"sz003039\",\"beforeClosePrice\":12.45,"
            + "\"openPrice\":12.46},{\"code\":\"sh600098\",\"beforeClosePrice\":6.20,\"openPrice\":6.23},"
            + "{\"code\":\"sh603171\",\"beforeClosePrice\":28.28,\"openPrice\":28.28},{\"code\":\"sz003040\","
            + "\"beforeClosePrice\":12.93,\"openPrice\":13.50},{\"code\":\"sz000061\",\"beforeClosePrice\":6.64,"
            + "\"openPrice\":6.63},{\"code\":\"sz002456\",\"beforeClosePrice\":11.13,\"openPrice\":11.20},"
            + "{\"code\":\"sz000860\",\"beforeClosePrice\":17.18,\"openPrice\":17.30},{\"code\":\"sz002839\","
            + "\"beforeClosePrice\":4.22,\"openPrice\":4.22},{\"code\":\"sh600586\",\"beforeClosePrice\":5.40,"
            + "\"openPrice\":5.38},{\"code\":\"sz000762\",\"beforeClosePrice\":20.33,\"openPrice\":20.22},"
            + "{\"code\":\"sh601208\",\"beforeClosePrice\":7.00,\"openPrice\":7.02},{\"code\":\"sh603033\","
            + "\"beforeClosePrice\":12.57,\"openPrice\":12.53},{\"code\":\"sh605090\",\"beforeClosePrice\":27.92,"
            + "\"openPrice\":27.62},{\"code\":\"sz002217\",\"beforeClosePrice\":2.05,\"openPrice\":1.99},"
            + "{\"code\":\"sh605365\",\"beforeClosePrice\":14.97,\"openPrice\":14.90},{\"code\":\"sz002773\","
            + "\"beforeClosePrice\":19.35,\"openPrice\":19.34},{\"code\":\"sh601921\",\"beforeClosePrice\":7.58,"
            + "\"openPrice\":7.58},{\"code\":\"sh601528\",\"beforeClosePrice\":5.50,\"openPrice\":5.49},"
            + "{\"code\":\"sh600428\",\"beforeClosePrice\":6.87,\"openPrice\":6.88},{\"code\":\"sz002941\","
            + "\"beforeClosePrice\":10.52,\"openPrice\":10.54},{\"code\":\"sz002891\",\"beforeClosePrice\":33.06,"
            + "\"openPrice\":32.98},{\"code\":\"sh600073\",\"beforeClosePrice\":6.68,\"openPrice\":6.70},"
            + "{\"code\":\"sz002807\",\"beforeClosePrice\":4.24,\"openPrice\":4.24},{\"code\":\"sz003009\","
            + "\"beforeClosePrice\":37.17,\"openPrice\":36.99},{\"code\":\"sh600320\",\"beforeClosePrice\":3.78,"
            + "\"openPrice\":3.78},{\"code\":\"sz002544\",\"beforeClosePrice\":18.63,\"openPrice\":18.80},"
            + "{\"code\":\"sz000543\",\"beforeClosePrice\":7.46,\"openPrice\":7.46},{\"code\":\"sz003012\","
            + "\"beforeClosePrice\":6.08,\"openPrice\":6.08},{\"code\":\"sh601212\",\"beforeClosePrice\":2.75,"
            + "\"openPrice\":2.74},{\"code\":\"sz002190\",\"beforeClosePrice\":17.58,\"openPrice\":17.58},"
            + "{\"code\":\"sz000712\",\"beforeClosePrice\":13.15,\"openPrice\":13.15},{\"code\":\"sh603877\","
            + "\"beforeClosePrice\":14.77,\"openPrice\":14.66},{\"code\":\"sh605009\",\"beforeClosePrice\":38.50,"
            + "\"openPrice\":38.51},{\"code\":\"sh605338\",\"beforeClosePrice\":16.50,\"openPrice\":16.34},"
            + "{\"code\":\"sz002993\",\"beforeClosePrice\":36.95,\"openPrice\":37.02},{\"code\":\"sz003009\","
            + "\"beforeClosePrice\":37.17,\"openPrice\":36.99},{\"code\":\"sh601609\",\"beforeClosePrice\":5.72,"
            + "\"openPrice\":5.72},{\"code\":\"sz000848\",\"beforeClosePrice\":8.82,\"openPrice\":8.82},"
            + "{\"code\":\"sh600996\",\"beforeClosePrice\":7.76,\"openPrice\":7.78},{\"code\":\"sz002979\","
            + "\"beforeClosePrice\":27.49,\"openPrice\":27.61},{\"code\":\"sh603766\",\"beforeClosePrice\":8.57,"
            + "\"openPrice\":8.57},{\"code\":\"sh603025\",\"beforeClosePrice\":14.40,\"openPrice\":14.46},"
            + "{\"code\":\"sz002987\",\"beforeClosePrice\":13.16,\"openPrice\":13.30},{\"code\":\"sh601678\","
            + "\"beforeClosePrice\":3.85,\"openPrice\":3.80},{\"code\":\"sz002847\",\"beforeClosePrice\":60.35,"
            + "\"openPrice\":60.12},{\"code\":\"sh603129\",\"beforeClosePrice\":153.74,\"openPrice\":155.00},"
            + "{\"code\":\"sh603566\",\"beforeClosePrice\":12.27,\"openPrice\":12.28},{\"code\":\"sz002990\","
            + "\"beforeClosePrice\":21.19,\"openPrice\":21.32},{\"code\":\"sh603301\",\"beforeClosePrice\":21.05,"
            + "\"openPrice\":21.18},{\"code\":\"sh603208\",\"beforeClosePrice\":17.82,\"openPrice\":17.82},"
            + "{\"code\":\"sh600452\",\"beforeClosePrice\":9.81,\"openPrice\":9.81},{\"code\":\"sz002201\","
            + "\"beforeClosePrice\":4.74,\"openPrice\":4.77},{\"code\":\"sh600223\",\"beforeClosePrice\":7.24,"
            + "\"openPrice\":7.25},{\"code\":\"sz002573\",\"beforeClosePrice\":3.84,\"openPrice\":3.82},"
            + "{\"code\":\"sz002961\",\"beforeClosePrice\":13.52,\"openPrice\":13.54},{\"code\":\"sz002706\","
            + "\"beforeClosePrice\":6.87,\"openPrice\":6.87},{\"code\":\"sh603530\",\"beforeClosePrice\":23.35,"
            + "\"openPrice\":23.58},{\"code\":\"sz000403\",\"beforeClosePrice\":20.77,\"openPrice\":20.58},"
            + "{\"code\":\"sh601001\",\"beforeClosePrice\":13.36,\"openPrice\":13.32},{\"code\":\"sz002959\","
            + "\"beforeClosePrice\":45.00,\"openPrice\":44.34},{\"code\":\"sh600510\",\"beforeClosePrice\":4.47,"
            + "\"openPrice\":4.50},{\"code\":\"sz002291\",\"beforeClosePrice\":5.68,\"openPrice\":5.74},"
            + "{\"code\":\"sh600267\",\"beforeClosePrice\":8.42,\"openPrice\":8.40},{\"code\":\"sz002967\","
            + "\"beforeClosePrice\":15.41,\"openPrice\":15.41},{\"code\":\"sh603690\",\"beforeClosePrice\":23.25,"
            + "\"openPrice\":23.28},{\"code\":\"sh603730\",\"beforeClosePrice\":8.65,\"openPrice\":8.61},"
            + "{\"code\":\"sh601965\",\"beforeClosePrice\":16.70,\"openPrice\":16.75},{\"code\":\"sz002838\","
            + "\"beforeClosePrice\":11.14,\"openPrice\":11.15},{\"code\":\"sz002214\",\"beforeClosePrice\":11.29,"
            + "\"openPrice\":11.18},{\"code\":\"sz002332\",\"beforeClosePrice\":10.07,\"openPrice\":10.05},"
            + "{\"code\":\"sz002777\",\"beforeClosePrice\":15.72,\"openPrice\":15.80},{\"code\":\"sz002950\","
            + "\"beforeClosePrice\":8.56,\"openPrice\":8.56},{\"code\":\"sh600458\",\"beforeClosePrice\":12.11,"
            + "\"openPrice\":12.09},{\"code\":\"sh600685\",\"beforeClosePrice\":22.60,\"openPrice\":22.60},"
            + "{\"code\":\"sh600775\",\"beforeClosePrice\":8.82,\"openPrice\":8.99},{\"code\":\"sh600971\","
            + "\"beforeClosePrice\":9.16,\"openPrice\":9.14},{\"code\":\"sh601137\",\"beforeClosePrice\":19.38,"
            + "\"openPrice\":19.53},{\"code\":\"sh601567\",\"beforeClosePrice\":28.48,\"openPrice\":28.48},"
            + "{\"code\":\"sh603236\",\"beforeClosePrice\":66.50,\"openPrice\":62.01},{\"code\":\"sh600993\","
            + "\"beforeClosePrice\":25.56,\"openPrice\":25.51},{\"code\":\"sh601515\",\"beforeClosePrice\":3.55,"
            + "\"openPrice\":3.54},{\"code\":\"sh603169\",\"beforeClosePrice\":5.17,\"openPrice\":5.17},"
            + "{\"code\":\"sh603279\",\"beforeClosePrice\":17.04,\"openPrice\":17.03},{\"code\":\"sz002034\","
            + "\"beforeClosePrice\":15.05,\"openPrice\":15.05},{\"code\":\"sz002063\",\"beforeClosePrice\":5.36,"
            + "\"openPrice\":5.36},{\"code\":\"sz002123\",\"beforeClosePrice\":10.81,\"openPrice\":10.81},"
            + "{\"code\":\"sz002400\",\"beforeClosePrice\":7.17,\"openPrice\":7.35},{\"code\":\"sz002646\","
            + "\"beforeClosePrice\":9.45,\"openPrice\":9.59},{\"code\":\"sz002913\",\"beforeClosePrice\":22.06,"
            + "\"openPrice\":22.00},{\"code\":\"sh600284\",\"beforeClosePrice\":5.99,\"openPrice\":6.02},"
            + "{\"code\":\"sh600389\",\"beforeClosePrice\":13.90,\"openPrice\":13.90},{\"code\":\"sh600496\","
            + "\"beforeClosePrice\":2.93,\"openPrice\":2.92},{\"code\":\"sh600635\",\"beforeClosePrice\":3.76,"
            + "\"openPrice\":3.78},{\"code\":\"sh600761\",\"beforeClosePrice\":16.93,\"openPrice\":16.90},"
            + "{\"code\":\"sh600810\",\"beforeClosePrice\":7.51,\"openPrice\":7.53},{\"code\":\"sh601519\","
            + "\"beforeClosePrice\":8.25,\"openPrice\":8.27},{\"code\":\"sh603027\",\"beforeClosePrice\":11.25,"
            + "\"openPrice\":11.25},{\"code\":\"sh600773\",\"beforeClosePrice\":10.25,\"openPrice\":10.40},"
            + "{\"code\":\"sh600850\",\"beforeClosePrice\":20.81,\"openPrice\":20.90},{\"code\":\"sh601606\","
            + "\"beforeClosePrice\":11.16,\"openPrice\":11.18},{\"code\":\"sh603583\",\"beforeClosePrice\":23.23,"
            + "\"openPrice\":23.46},{\"code\":\"sz002928\",\"beforeClosePrice\":7.21,\"openPrice\":7.21},"
            + "{\"code\":\"sz002851\",\"beforeClosePrice\":59.24,\"openPrice\":59.98},{\"code\":\"sh601375\","
            + "\"beforeClosePrice\":4.01,\"openPrice\":4.01},{\"code\":\"sh601886\",\"beforeClosePrice\":5.29,"
            + "\"openPrice\":5.29},{\"code\":\"sh600059\",\"beforeClosePrice\":8.44,\"openPrice\":8.43},"
            + "{\"code\":\"sz000913\",\"beforeClosePrice\":17.98,\"openPrice\":17.86},{\"code\":\"sz002428\","
            + "\"beforeClosePrice\":17.90,\"openPrice\":17.91},{\"code\":\"sh603896\",\"beforeClosePrice\":20.05,"
            + "\"openPrice\":20.15},{\"code\":\"sh600929\",\"beforeClosePrice\":5.43,\"openPrice\":5.43},"
            + "{\"code\":\"sh600422\",\"beforeClosePrice\":16.17,\"openPrice\":16.02},{\"code\":\"sh603876\","
            + "\"beforeClosePrice\":8.57,\"openPrice\":8.55},{\"code\":\"sh600211\",\"beforeClosePrice\":36.50,"
            + "\"openPrice\":36.51},{\"code\":\"sh603733\",\"beforeClosePrice\":19.82,\"openPrice\":19.94},"
            + "{\"code\":\"sz002261\",\"beforeClosePrice\":17.69,\"openPrice\":17.61},{\"code\":\"sh603666\","
            + "\"beforeClosePrice\":21.44,\"openPrice\":21.68},{\"code\":\"sh600596\",\"beforeClosePrice\":8.60,"
            + "\"openPrice\":8.59},{\"code\":\"sh600933\",\"beforeClosePrice\":15.16,\"openPrice\":15.16},"
            + "{\"code\":\"sh600966\",\"beforeClosePrice\":4.87,\"openPrice\":4.87},{\"code\":\"sz000810\","
            + "\"beforeClosePrice\":12.46,\"openPrice\":12.43},{\"code\":\"sh600295\",\"beforeClosePrice\":9.65,"
            + "\"openPrice\":9.61},{\"code\":\"sh603466\",\"beforeClosePrice\":8.13,\"openPrice\":8.20},"
            + "{\"code\":\"sz000030\",\"beforeClosePrice\":4.93,\"openPrice\":4.92},{\"code\":\"sz000923\","
            + "\"beforeClosePrice\":13.64,\"openPrice\":13.62},{\"code\":\"sh601908\",\"beforeClosePrice\":2.79,"
            + "\"openPrice\":2.78},{\"code\":\"sz002267\",\"beforeClosePrice\":8.15,\"openPrice\":8.13},"
            + "{\"code\":\"sz000935\",\"beforeClosePrice\":13.73,\"openPrice\":13.73},{\"code\":\"sz002727\","
            + "\"beforeClosePrice\":12.56,\"openPrice\":12.60},{\"code\":\"sz002061\",\"beforeClosePrice\":3.94,"
            + "\"openPrice\":3.92},{\"code\":\"sh603801\",\"beforeClosePrice\":11.90,\"openPrice\":11.75},"
            + "{\"code\":\"sh600055\",\"beforeClosePrice\":14.55,\"openPrice\":14.55},{\"code\":\"sh603533\","
            + "\"beforeClosePrice\":18.65,\"openPrice\":18.74},{\"code\":\"sh601949\",\"beforeClosePrice\":6.78,"
            + "\"openPrice\":6.78},{\"code\":\"sh600217\",\"beforeClosePrice\":5.08,\"openPrice\":5.08},"
            + "{\"code\":\"sh603920\",\"beforeClosePrice\":28.82,\"openPrice\":28.80},{\"code\":\"sh603881\","
            + "\"beforeClosePrice\":17.65,\"openPrice\":17.78},{\"code\":\"sz000560\",\"beforeClosePrice\":2.90,"
            + "\"openPrice\":2.90},{\"code\":\"sh603113\",\"beforeClosePrice\":5.42,\"openPrice\":5.40},"
            + "{\"code\":\"sz000550\",\"beforeClosePrice\":22.40,\"openPrice\":22.45},{\"code\":\"sh603323\","
            + "\"beforeClosePrice\":5.12,\"openPrice\":5.11},{\"code\":\"sz002237\",\"beforeClosePrice\":10.16,"
            + "\"openPrice\":10.16},{\"code\":\"sh603043\",\"beforeClosePrice\":15.90,\"openPrice\":15.78},"
            + "{\"code\":\"sz000951\",\"beforeClosePrice\":17.41,\"openPrice\":17.43},{\"code\":\"sh600252\","
            + "\"beforeClosePrice\":2.41,\"openPrice\":2.40},{\"code\":\"sh600783\",\"beforeClosePrice\":11.84,"
            + "\"openPrice\":11.85},{\"code\":\"sh600997\",\"beforeClosePrice\":6.56,\"openPrice\":6.56},"
            + "{\"code\":\"sh603298\",\"beforeClosePrice\":18.69,\"openPrice\":18.51},{\"code\":\"sh600252\","
            + "\"beforeClosePrice\":2.41,\"openPrice\":2.40},{\"code\":\"sh600783\",\"beforeClosePrice\":11.84,"
            + "\"openPrice\":11.85},{\"code\":\"sh600997\",\"beforeClosePrice\":6.56,\"openPrice\":6.56},"
            + "{\"code\":\"sh603298\",\"beforeClosePrice\":18.69,\"openPrice\":18.51},{\"code\":\"sh603919\","
            + "\"beforeClosePrice\":18.18,\"openPrice\":18.20},{\"code\":\"sh603108\",\"beforeClosePrice\":14.74,"
            + "\"openPrice\":14.80},{\"code\":\"sz000603\",\"beforeClosePrice\":12.07,\"openPrice\":12.07},"
            + "{\"code\":\"sz000688\",\"beforeClosePrice\":11.39,\"openPrice\":11.41},{\"code\":\"sz000059\","
            + "\"beforeClosePrice\":4.45,\"openPrice\":4.46},{\"code\":\"sz002675\",\"beforeClosePrice\":12.39,"
            + "\"openPrice\":12.35},{\"code\":\"sh600072\",\"beforeClosePrice\":12.58,\"openPrice\":12.61},"
            + "{\"code\":\"sh600477\",\"beforeClosePrice\":2.49,\"openPrice\":2.48},{\"code\":\"sh600876\","
            + "\"beforeClosePrice\":8.99,\"openPrice\":9.12},{\"code\":\"sh600110\",\"beforeClosePrice\":3.77,"
            + "\"openPrice\":3.78},{\"code\":\"sh600641\",\"beforeClosePrice\":14.35,\"openPrice\":14.38},"
            + "{\"code\":\"sh601011\",\"beforeClosePrice\":3.13,\"openPrice\":2.94},{\"code\":\"sz000735\","
            + "\"beforeClosePrice\":5.93,\"openPrice\":5.97},{\"code\":\"sz002488\",\"beforeClosePrice\":10.35,"
            + "\"openPrice\":10.27},{\"code\":\"sz002747\",\"beforeClosePrice\":16.62,\"openPrice\":16.69},"
            + "{\"code\":\"sh600986\",\"beforeClosePrice\":5.43,\"openPrice\":5.44},{\"code\":\"sh603588\","
            + "\"beforeClosePrice\":5.03,\"openPrice\":5.02},{\"code\":\"sh603979\",\"beforeClosePrice\":38.38,"
            + "\"openPrice\":38.38},{\"code\":\"sh603997\",\"beforeClosePrice\":10.94,\"openPrice\":11.55},"
            + "{\"code\":\"sz000657\",\"beforeClosePrice\":8.88,\"openPrice\":8.88},{\"code\":\"sz002226\","
            + "\"beforeClosePrice\":5.41,\"openPrice\":5.41},{\"code\":\"sz002737\",\"beforeClosePrice\":21.39,"
            + "\"openPrice\":21.03},{\"code\":\"sh600123\",\"beforeClosePrice\":8.26,\"openPrice\":8.24},"
            + "{\"code\":\"sh600491\",\"beforeClosePrice\":3.45,\"openPrice\":3.47},{\"code\":\"sh603609\","
            + "\"beforeClosePrice\":8.31,\"openPrice\":8.31},{\"code\":\"sh603609\",\"beforeClosePrice\":8.31,"
            + "\"openPrice\":8.31},{\"code\":\"sh603678\",\"beforeClosePrice\":27.72,\"openPrice\":27.69},"
            + "{\"code\":\"sh600711\",\"beforeClosePrice\":4.72,\"openPrice\":4.74},{\"code\":\"sh600449\","
            + "\"beforeClosePrice\":13.24,\"openPrice\":13.47},{\"code\":\"sz002726\",\"beforeClosePrice\":7.40,"
            + "\"openPrice\":7.38},{\"code\":\"sz002378\",\"beforeClosePrice\":6.40,\"openPrice\":6.37},"
            + "{\"code\":\"sz002171\",\"beforeClosePrice\":8.08,\"openPrice\":8.10},{\"code\":\"sz000902\","
            + "\"beforeClosePrice\":12.88,\"openPrice\":12.93},{\"code\":\"sz000035\",\"beforeClosePrice\":4.57,"
            + "\"openPrice\":4.56},{\"code\":\"sh600323\",\"beforeClosePrice\":23.37,\"openPrice\":23.40},"
            + "{\"code\":\"sh600662\",\"beforeClosePrice\":4.75,\"openPrice\":4.70},{\"code\":\"sz002215\","
            + "\"beforeClosePrice\":10.12,\"openPrice\":10.13},{\"code\":\"sh600420\",\"beforeClosePrice\":11.83,"
            + "\"openPrice\":11.80},{\"code\":\"sz002649\",\"beforeClosePrice\":10.79,\"openPrice\":10.83},"
            + "{\"code\":\"sz002643\",\"beforeClosePrice\":10.36,\"openPrice\":10.06},{\"code\":\"sz002697\","
            + "\"beforeClosePrice\":5.50,\"openPrice\":5.58},{\"code\":\"sh600363\",\"beforeClosePrice\":44.12,"
            + "\"openPrice\":44.33},{\"code\":\"sh600559\",\"beforeClosePrice\":18.89,\"openPrice\":18.94},"
            + "{\"code\":\"sh600391\",\"beforeClosePrice\":17.57,\"openPrice\":17.57},{\"code\":\"sz000789\","
            + "\"beforeClosePrice\":4.80,\"openPrice\":4.80},{\"code\":\"sz002421\",\"beforeClosePrice\":3.08,"
            + "\"openPrice\":3.10},{\"code\":\"sz002605\",\"beforeClosePrice\":24.59,\"openPrice\":24.60},"
            + "{\"code\":\"sz002643\",\"beforeClosePrice\":10.36,\"openPrice\":10.06},{\"code\":\"sz002697\","
            + "\"beforeClosePrice\":5.50,\"openPrice\":5.58},{\"code\":\"sh600363\",\"beforeClosePrice\":44.12,"
            + "\"openPrice\":44.33},{\"code\":\"sh600559\",\"beforeClosePrice\":18.89,\"openPrice\":18.94},"
            + "{\"code\":\"sh600604\",\"beforeClosePrice\":4.37,\"openPrice\":4.37},{\"code\":\"sz002126\","
            + "\"beforeClosePrice\":17.87,\"openPrice\":17.88},{\"code\":\"sz002597\",\"beforeClosePrice\":23.20,"
            + "\"openPrice\":23.20},{\"code\":\"sz000058\",\"beforeClosePrice\":7.38,\"openPrice\":7.36},"
            + "{\"code\":\"sz002516\",\"beforeClosePrice\":4.72,\"openPrice\":4.72},{\"code\":\"sz002677\","
            + "\"beforeClosePrice\":7.13,\"openPrice\":7.15},{\"code\":\"sz002182\",\"beforeClosePrice\":10.79,"
            + "\"openPrice\":10.73},{\"code\":\"sz002617\",\"beforeClosePrice\":6.71,\"openPrice\":6.71},"
            + "{\"code\":\"sz002446\",\"beforeClosePrice\":6.15,\"openPrice\":6.16},{\"code\":\"sz000811\","
            + "\"beforeClosePrice\":11.18,\"openPrice\":11.13},{\"code\":\"sz000901\",\"beforeClosePrice\":10.05,"
            + "\"openPrice\":10.09},{\"code\":\"sh600285\",\"beforeClosePrice\":21.51,\"openPrice\":21.39},"
            + "{\"code\":\"sh600063\",\"beforeClosePrice\":3.88,\"openPrice\":3.89},{\"code\":\"sz002108\","
            + "\"beforeClosePrice\":3.47,\"openPrice\":3.46},{\"code\":\"sh600360\",\"beforeClosePrice\":4.29,"
            + "\"openPrice\":4.31},{\"code\":\"sz002626\",\"beforeClosePrice\":14.67,\"openPrice\":14.74},"
            + "{\"code\":\"sh600621\",\"beforeClosePrice\":14.40,\"openPrice\":14.40},{\"code\":\"sz000875\","
            + "\"beforeClosePrice\":5.06,\"openPrice\":5.06},{\"code\":\"sh603008\",\"beforeClosePrice\":16.28,"
            + "\"openPrice\":16.30},{\"code\":\"sh600116\",\"beforeClosePrice\":6.85,\"openPrice\":6.86},"
            + "{\"code\":\"sz002245\",\"beforeClosePrice\":12.36,\"openPrice\":12.00},{\"code\":\"sh600480\","
            + "\"beforeClosePrice\":10.05,\"openPrice\":10.10},{\"code\":\"sz002307\",\"beforeClosePrice\":3.51,"
            + "\"openPrice\":3.60},{\"code\":\"sz002222\",\"beforeClosePrice\":30.24,\"openPrice\":30.15},"
            + "{\"code\":\"sz002139\",\"beforeClosePrice\":12.34,\"openPrice\":12.34}]";

        String json2 = "[{\"code\":\"sh603398\",\"beforeClosePrice\":20.76,\"openPrice\":20.76},{\"code\":\"sz000869\","
            + "\"beforeClosePrice\":22.04,\"openPrice\":22.01},{\"code\":\"sz002183\",\"beforeClosePrice\":4.13,"
            + "\"openPrice\":4.12},{\"code\":\"sz002127\",\"beforeClosePrice\":4.75,\"openPrice\":4.70},"
            + "{\"code\":\"sz002275\",\"beforeClosePrice\":16.28,\"openPrice\":15.95},{\"code\":\"sz002081\","
            + "\"beforeClosePrice\":3.43,\"openPrice\":3.42},{\"code\":\"sz002250\",\"beforeClosePrice\":5.26,"
            + "\"openPrice\":5.25},{\"code\":\"sz002985\",\"beforeClosePrice\":21.00,\"openPrice\":21.03},"
            + "{\"code\":\"sz002096\",\"beforeClosePrice\":11.32,\"openPrice\":11.33},{\"code\":\"sz002705\","
            + "\"beforeClosePrice\":14.93,\"openPrice\":14.99},{\"code\":\"sz002265\",\"beforeClosePrice\":27.70,"
            + "\"openPrice\":27.70},{\"code\":\"sz000837\",\"beforeClosePrice\":8.09,\"openPrice\":8.09},"
            + "{\"code\":\"sz000415\",\"beforeClosePrice\":3.47,\"openPrice\":3.47},{\"code\":\"sz001287\","
            + "\"beforeClosePrice\":18.10,\"openPrice\":18.15},{\"code\":\"sh601326\",\"beforeClosePrice\":3.25,"
            + "\"openPrice\":3.25},{\"code\":\"sh600976\",\"beforeClosePrice\":42.26,\"openPrice\":42.16},"
            + "{\"code\":\"sz002275\",\"beforeClosePrice\":16.28,\"openPrice\":15.95},{\"code\":\"sz000719\","
            + "\"beforeClosePrice\":11.12,\"openPrice\":11.12},{\"code\":\"sz002458\",\"beforeClosePrice\":9.13,"
            + "\"openPrice\":9.16},{\"code\":\"sz002221\",\"beforeClosePrice\":9.53,\"openPrice\":9.49},"
            + "{\"code\":\"sh600409\",\"beforeClosePrice\":5.28,\"openPrice\":5.27},{\"code\":\"sh600195\","
            + "\"beforeClosePrice\":6.45,\"openPrice\":6.47},{\"code\":\"sz002265\",\"beforeClosePrice\":27.70,"
            + "\"openPrice\":27.70},{\"code\":\"sh600782\",\"beforeClosePrice\":3.37,\"openPrice\":3.35},"
            + "{\"code\":\"sh600601\",\"beforeClosePrice\":4.04,\"openPrice\":4.04},{\"code\":\"sz000869\","
            + "\"beforeClosePrice\":22.04,\"openPrice\":22.01},{\"code\":\"sz002183\",\"beforeClosePrice\":4.13,"
            + "\"openPrice\":4.12},{\"code\":\"sz000420\",\"beforeClosePrice\":3.37,\"openPrice\":3.39},"
            + "{\"code\":\"sh600409\",\"beforeClosePrice\":5.28,\"openPrice\":5.27},{\"code\":\"sz002183\","
            + "\"beforeClosePrice\":4.13,\"openPrice\":4.12},{\"code\":\"sz002250\",\"beforeClosePrice\":5.26,"
            + "\"openPrice\":5.25},{\"code\":\"sz000420\",\"beforeClosePrice\":3.37,\"openPrice\":3.39},"
            + "{\"code\":\"sz002275\",\"beforeClosePrice\":16.28,\"openPrice\":15.95},{\"code\":\"sz002866\","
            + "\"beforeClosePrice\":14.78,\"openPrice\":14.81},{\"code\":\"sh603719\",\"beforeClosePrice\":15.53,"
            + "\"openPrice\":15.59},{\"code\":\"sh603100\",\"beforeClosePrice\":20.82,\"openPrice\":20.80},"
            + "{\"code\":\"sz000552\",\"beforeClosePrice\":2.67,\"openPrice\":2.67},{\"code\":\"sz000821\","
            + "\"beforeClosePrice\":11.86,\"openPrice\":11.86},{\"code\":\"sh601101\",\"beforeClosePrice\":8.13,"
            + "\"openPrice\":8.08},{\"code\":\"sh603477\",\"beforeClosePrice\":16.99,\"openPrice\":16.97},"
            + "{\"code\":\"sh603057\",\"beforeClosePrice\":17.07,\"openPrice\":17.11},{\"code\":\"sh601022\","
            + "\"beforeClosePrice\":7.76,\"openPrice\":7.75},{\"code\":\"sh603871\",\"beforeClosePrice\":18.75,"
            + "\"openPrice\":18.76},{\"code\":\"sh600064\",\"beforeClosePrice\":7.48,\"openPrice\":7.50},"
            + "{\"code\":\"sh600633\",\"beforeClosePrice\":9.53,\"openPrice\":9.54},{\"code\":\"sz002416\","
            + "\"beforeClosePrice\":14.17,\"openPrice\":14.30},{\"code\":\"sz002583\",\"beforeClosePrice\":12.67,"
            + "\"openPrice\":12.80},{\"code\":\"sz002424\",\"beforeClosePrice\":3.85,\"openPrice\":3.83},"
            + "{\"code\":\"sz002434\",\"beforeClosePrice\":5.82,\"openPrice\":5.84},{\"code\":\"sz002701\","
            + "\"beforeClosePrice\":5.33,\"openPrice\":5.34},{\"code\":\"sh603719\",\"beforeClosePrice\":15.53,"
            + "\"openPrice\":15.59},{\"code\":\"sh600201\",\"beforeClosePrice\":6.60,\"openPrice\":6.61},"
            + "{\"code\":\"sh601019\",\"beforeClosePrice\":11.22,\"openPrice\":11.10},{\"code\":\"sh603983\","
            + "\"beforeClosePrice\":31.65,\"openPrice\":31.01},{\"code\":\"sh603477\",\"beforeClosePrice\":16.99,"
            + "\"openPrice\":16.97},{\"code\":\"sh605020\",\"beforeClosePrice\":19.20,\"openPrice\":19.20},"
            + "{\"code\":\"sh603281\",\"beforeClosePrice\":24.22,\"openPrice\":24.33},{\"code\":\"sz000686\","
            + "\"beforeClosePrice\":7.39,\"openPrice\":7.43},{\"code\":\"sz002124\",\"beforeClosePrice\":2.68,"
            + "\"openPrice\":2.67},{\"code\":\"sz001236\",\"beforeClosePrice\":8.93,\"openPrice\":8.97},"
            + "{\"code\":\"sz001301\",\"beforeClosePrice\":64.71,\"openPrice\":64.72},{\"code\":\"sz002003\","
            + "\"beforeClosePrice\":13.75,\"openPrice\":13.77},{\"code\":\"sh603297\",\"beforeClosePrice\":89.83,"
            + "\"openPrice\":88.94},{\"code\":\"sz002006\",\"beforeClosePrice\":15.16,\"openPrice\":15.16},"
            + "{\"code\":\"sh600403\",\"beforeClosePrice\":2.82,\"openPrice\":2.82},{\"code\":\"sh603123\","
            + "\"beforeClosePrice\":7.66,\"openPrice\":7.77},{\"code\":\"sz002011\",\"beforeClosePrice\":10.80,"
            + "\"openPrice\":10.80},{\"code\":\"sh600400\",\"beforeClosePrice\":2.36,\"openPrice\":2.37},"
            + "{\"code\":\"sh600508\",\"beforeClosePrice\":12.83,\"openPrice\":12.83},{\"code\":\"sz002946\","
            + "\"beforeClosePrice\":15.86,\"openPrice\":15.64},{\"code\":\"sz002317\",\"beforeClosePrice\":13.09,"
            + "\"openPrice\":13.10},{\"code\":\"sz001270\",\"beforeClosePrice\":34.37,\"openPrice\":34.42},"
            + "{\"code\":\"sz002004\",\"beforeClosePrice\":4.46,\"openPrice\":4.45},{\"code\":\"sh600120\","
            + "\"beforeClosePrice\":4.35,\"openPrice\":4.35},{\"code\":\"sz002174\",\"beforeClosePrice\":9.03,"
            + "\"openPrice\":8.99},{\"code\":\"sh600811\",\"beforeClosePrice\":2.06,\"openPrice\":2.06},"
            + "{\"code\":\"sh603032\",\"beforeClosePrice\":12.95,\"openPrice\":12.95},{\"code\":\"sh600478\","
            + "\"beforeClosePrice\":3.98,\"openPrice\":3.94},{\"code\":\"sh603297\",\"beforeClosePrice\":89.83,"
            + "\"openPrice\":88.94},{\"code\":\"sh600403\",\"beforeClosePrice\":2.82,\"openPrice\":2.82},"
            + "{\"code\":\"sz002317\",\"beforeClosePrice\":13.09,\"openPrice\":13.10},{\"code\":\"sh601860\","
            + "\"beforeClosePrice\":2.74,\"openPrice\":2.73},{\"code\":\"sz001258\",\"beforeClosePrice\":6.92,"
            + "\"openPrice\":6.95},{\"code\":\"sh600478\",\"beforeClosePrice\":3.98,\"openPrice\":3.94},"
            + "{\"code\":\"sh600403\",\"beforeClosePrice\":2.82,\"openPrice\":2.82},{\"code\":\"sz002724\","
            + "\"beforeClosePrice\":4.74,\"openPrice\":4.77},{\"code\":\"sz000681\",\"beforeClosePrice\":19.81,"
            + "\"openPrice\":19.82},{\"code\":\"sh603567\",\"beforeClosePrice\":11.67,\"openPrice\":11.67},"
            + "{\"code\":\"sh603396\",\"beforeClosePrice\":25.16,\"openPrice\":25.16},{\"code\":\"sh600691\","
            + "\"beforeClosePrice\":2.15,\"openPrice\":2.13},{\"code\":\"sh600869\",\"beforeClosePrice\":4.44,"
            + "\"openPrice\":4.43},{\"code\":\"sh603055\",\"beforeClosePrice\":10.73,\"openPrice\":10.66},"
            + "{\"code\":\"sh600691\",\"beforeClosePrice\":2.15,\"openPrice\":2.13},{\"code\":\"sz002038\","
            + "\"beforeClosePrice\":8.25,\"openPrice\":7.99},{\"code\":\"sz002724\",\"beforeClosePrice\":4.74,"
            + "\"openPrice\":4.77},{\"code\":\"sh600675\",\"beforeClosePrice\":2.70,\"openPrice\":2.71},"
            + "{\"code\":\"sh600888\",\"beforeClosePrice\":7.02,\"openPrice\":7.04},{\"code\":\"sz000681\","
            + "\"beforeClosePrice\":19.81,\"openPrice\":19.82},{\"code\":\"sh601702\",\"beforeClosePrice\":17.83,"
            + "\"openPrice\":17.84},{\"code\":\"sh600610\",\"beforeClosePrice\":3.93,\"openPrice\":3.93},"
            + "{\"code\":\"sh603306\",\"beforeClosePrice\":30.30,\"openPrice\":30.30},{\"code\":\"sz000681\","
            + "\"beforeClosePrice\":19.81,\"openPrice\":19.82},{\"code\":\"sh601702\",\"beforeClosePrice\":17.83,"
            + "\"openPrice\":17.84},{\"code\":\"sh600610\",\"beforeClosePrice\":3.93,\"openPrice\":3.93},"
            + "{\"code\":\"sh603306\",\"beforeClosePrice\":30.30,\"openPrice\":30.30},{\"code\":\"sh603995\","
            + "\"beforeClosePrice\":18.42,\"openPrice\":18.40},{\"code\":\"sz000966\",\"beforeClosePrice\":4.56,"
            + "\"openPrice\":4.56},{\"code\":\"sh600007\",\"beforeClosePrice\":23.86,\"openPrice\":23.95},"
            + "{\"code\":\"sh600877\",\"beforeClosePrice\":12.58,\"openPrice\":12.57},{\"code\":\"sz002612\","
            + "\"beforeClosePrice\":15.64,\"openPrice\":15.68},{\"code\":\"sz003039\",\"beforeClosePrice\":12.45,"
            + "\"openPrice\":12.46},{\"code\":\"sh600098\",\"beforeClosePrice\":6.20,\"openPrice\":6.23},"
            + "{\"code\":\"sh603171\",\"beforeClosePrice\":28.28,\"openPrice\":28.28},{\"code\":\"sz003040\","
            + "\"beforeClosePrice\":12.93,\"openPrice\":13.50},{\"code\":\"sz000061\",\"beforeClosePrice\":6.64,"
            + "\"openPrice\":6.63},{\"code\":\"sz002456\",\"beforeClosePrice\":11.13,\"openPrice\":11.20},"
            + "{\"code\":\"sz000860\",\"beforeClosePrice\":17.18,\"openPrice\":17.30},{\"code\":\"sz002839\","
            + "\"beforeClosePrice\":4.22,\"openPrice\":4.22},{\"code\":\"sh600586\",\"beforeClosePrice\":5.40,"
            + "\"openPrice\":5.38},{\"code\":\"sz000762\",\"beforeClosePrice\":20.33,\"openPrice\":20.22},"
            + "{\"code\":\"sh601208\",\"beforeClosePrice\":7.00,\"openPrice\":7.02},{\"code\":\"sh603033\","
            + "\"beforeClosePrice\":12.57,\"openPrice\":12.53},{\"code\":\"sh605090\",\"beforeClosePrice\":27.92,"
            + "\"openPrice\":27.62},{\"code\":\"sz002217\",\"beforeClosePrice\":2.05,\"openPrice\":1.99},"
            + "{\"code\":\"sh605365\",\"beforeClosePrice\":14.97,\"openPrice\":14.90},{\"code\":\"sz002773\","
            + "\"beforeClosePrice\":19.35,\"openPrice\":19.34},{\"code\":\"sh601921\",\"beforeClosePrice\":7.58,"
            + "\"openPrice\":7.58},{\"code\":\"sh601528\",\"beforeClosePrice\":5.50,\"openPrice\":5.49},"
            + "{\"code\":\"sh600428\",\"beforeClosePrice\":6.87,\"openPrice\":6.88},{\"code\":\"sz002941\","
            + "\"beforeClosePrice\":10.52,\"openPrice\":10.54},{\"code\":\"sz002891\",\"beforeClosePrice\":33.06,"
            + "\"openPrice\":32.98},{\"code\":\"sh600073\",\"beforeClosePrice\":6.68,\"openPrice\":6.70},"
            + "{\"code\":\"sz002807\",\"beforeClosePrice\":4.24,\"openPrice\":4.24},{\"code\":\"sz003009\","
            + "\"beforeClosePrice\":37.17,\"openPrice\":36.99},{\"code\":\"sh600320\",\"beforeClosePrice\":3.78,"
            + "\"openPrice\":3.78},{\"code\":\"sz002544\",\"beforeClosePrice\":18.63,\"openPrice\":18.80},"
            + "{\"code\":\"sz000543\",\"beforeClosePrice\":7.46,\"openPrice\":7.46},{\"code\":\"sz003012\","
            + "\"beforeClosePrice\":6.08,\"openPrice\":6.08},{\"code\":\"sh601212\",\"beforeClosePrice\":2.75,"
            + "\"openPrice\":2.74},{\"code\":\"sz002190\",\"beforeClosePrice\":17.58,\"openPrice\":17.58},"
            + "{\"code\":\"sz000712\",\"beforeClosePrice\":13.15,\"openPrice\":13.15},{\"code\":\"sh603877\","
            + "\"beforeClosePrice\":14.77,\"openPrice\":14.66},{\"code\":\"sh605009\",\"beforeClosePrice\":38.50,"
            + "\"openPrice\":38.50},{\"code\":\"sh605338\",\"beforeClosePrice\":16.50,\"openPrice\":16.34},"
            + "{\"code\":\"sz002993\",\"beforeClosePrice\":36.95,\"openPrice\":37.02},{\"code\":\"sz003009\","
            + "\"beforeClosePrice\":37.17,\"openPrice\":36.99},{\"code\":\"sh601609\",\"beforeClosePrice\":5.72,"
            + "\"openPrice\":5.72},{\"code\":\"sz000848\",\"beforeClosePrice\":8.82,\"openPrice\":8.82},"
            + "{\"code\":\"sh600996\",\"beforeClosePrice\":7.76,\"openPrice\":7.78},{\"code\":\"sz002979\","
            + "\"beforeClosePrice\":27.49,\"openPrice\":27.61},{\"code\":\"sh603766\",\"beforeClosePrice\":8.57,"
            + "\"openPrice\":8.57},{\"code\":\"sh603025\",\"beforeClosePrice\":14.40,\"openPrice\":14.46},"
            + "{\"code\":\"sz002987\",\"beforeClosePrice\":13.16,\"openPrice\":13.30},{\"code\":\"sh601678\","
            + "\"beforeClosePrice\":3.85,\"openPrice\":3.80},{\"code\":\"sz002847\",\"beforeClosePrice\":60.35,"
            + "\"openPrice\":60.12},{\"code\":\"sh603129\",\"beforeClosePrice\":153.74,\"openPrice\":155.00},"
            + "{\"code\":\"sh603566\",\"beforeClosePrice\":12.27,\"openPrice\":12.28},{\"code\":\"sz002990\","
            + "\"beforeClosePrice\":21.19,\"openPrice\":21.32},{\"code\":\"sh603301\",\"beforeClosePrice\":21.05,"
            + "\"openPrice\":21.18},{\"code\":\"sh603208\",\"beforeClosePrice\":17.82,\"openPrice\":17.82},"
            + "{\"code\":\"sh600452\",\"beforeClosePrice\":9.81,\"openPrice\":9.81},{\"code\":\"sz002201\","
            + "\"beforeClosePrice\":4.74,\"openPrice\":4.77},{\"code\":\"sh600223\",\"beforeClosePrice\":7.24,"
            + "\"openPrice\":7.25},{\"code\":\"sz002573\",\"beforeClosePrice\":3.84,\"openPrice\":3.82},"
            + "{\"code\":\"sz002961\",\"beforeClosePrice\":13.52,\"openPrice\":13.54},{\"code\":\"sz002706\","
            + "\"beforeClosePrice\":6.87,\"openPrice\":6.87},{\"code\":\"sh603530\",\"beforeClosePrice\":23.35,"
            + "\"openPrice\":23.58},{\"code\":\"sz000403\",\"beforeClosePrice\":20.77,\"openPrice\":20.58},"
            + "{\"code\":\"sh601001\",\"beforeClosePrice\":13.36,\"openPrice\":13.32},{\"code\":\"sz002959\","
            + "\"beforeClosePrice\":45.00,\"openPrice\":44.34},{\"code\":\"sh600510\",\"beforeClosePrice\":4.47,"
            + "\"openPrice\":4.50},{\"code\":\"sz002291\",\"beforeClosePrice\":5.68,\"openPrice\":5.74},"
            + "{\"code\":\"sh600267\",\"beforeClosePrice\":8.42,\"openPrice\":8.40},{\"code\":\"sz002967\","
            + "\"beforeClosePrice\":15.41,\"openPrice\":15.41},{\"code\":\"sh603690\",\"beforeClosePrice\":23.25,"
            + "\"openPrice\":23.28},{\"code\":\"sh603730\",\"beforeClosePrice\":8.65,\"openPrice\":8.61},"
            + "{\"code\":\"sh601965\",\"beforeClosePrice\":16.70,\"openPrice\":16.75},{\"code\":\"sz002838\","
            + "\"beforeClosePrice\":11.14,\"openPrice\":11.15},{\"code\":\"sz002214\",\"beforeClosePrice\":11.29,"
            + "\"openPrice\":11.18},{\"code\":\"sz002332\",\"beforeClosePrice\":10.07,\"openPrice\":10.05},"
            + "{\"code\":\"sz002777\",\"beforeClosePrice\":15.72,\"openPrice\":15.80},{\"code\":\"sz002950\","
            + "\"beforeClosePrice\":8.56,\"openPrice\":8.56},{\"code\":\"sh600458\",\"beforeClosePrice\":12.11,"
            + "\"openPrice\":12.09},{\"code\":\"sh600685\",\"beforeClosePrice\":22.60,\"openPrice\":22.60},"
            + "{\"code\":\"sh600775\",\"beforeClosePrice\":8.82,\"openPrice\":8.99},{\"code\":\"sh600971\","
            + "\"beforeClosePrice\":9.16,\"openPrice\":9.14},{\"code\":\"sh601137\",\"beforeClosePrice\":19.38,"
            + "\"openPrice\":19.53},{\"code\":\"sh601567\",\"beforeClosePrice\":28.48,\"openPrice\":28.48},"
            + "{\"code\":\"sh603236\",\"beforeClosePrice\":66.50,\"openPrice\":62.01},{\"code\":\"sh600993\","
            + "\"beforeClosePrice\":25.56,\"openPrice\":25.51},{\"code\":\"sh601515\",\"beforeClosePrice\":3.55,"
            + "\"openPrice\":3.54},{\"code\":\"sh603169\",\"beforeClosePrice\":5.17,\"openPrice\":5.17},"
            + "{\"code\":\"sh603279\",\"beforeClosePrice\":17.04,\"openPrice\":17.03},{\"code\":\"sz002034\","
            + "\"beforeClosePrice\":15.05,\"openPrice\":15.05},{\"code\":\"sz002063\",\"beforeClosePrice\":5.36,"
            + "\"openPrice\":5.36},{\"code\":\"sz002123\",\"beforeClosePrice\":10.81,\"openPrice\":10.81},"
            + "{\"code\":\"sz002400\",\"beforeClosePrice\":7.17,\"openPrice\":7.35},{\"code\":\"sz002646\","
            + "\"beforeClosePrice\":9.45,\"openPrice\":9.59},{\"code\":\"sz002913\",\"beforeClosePrice\":22.06,"
            + "\"openPrice\":22.00},{\"code\":\"sh600284\",\"beforeClosePrice\":5.99,\"openPrice\":6.02},"
            + "{\"code\":\"sh600389\",\"beforeClosePrice\":13.90,\"openPrice\":13.90},{\"code\":\"sh600496\","
            + "\"beforeClosePrice\":2.93,\"openPrice\":2.92},{\"code\":\"sh600635\",\"beforeClosePrice\":3.76,"
            + "\"openPrice\":3.78},{\"code\":\"sh600761\",\"beforeClosePrice\":16.93,\"openPrice\":16.90},"
            + "{\"code\":\"sh600810\",\"beforeClosePrice\":7.51,\"openPrice\":7.53},{\"code\":\"sh601519\","
            + "\"beforeClosePrice\":8.25,\"openPrice\":8.27},{\"code\":\"sh603027\",\"beforeClosePrice\":11.25,"
            + "\"openPrice\":11.25},{\"code\":\"sh600773\",\"beforeClosePrice\":10.25,\"openPrice\":10.40},"
            + "{\"code\":\"sh600850\",\"beforeClosePrice\":20.81,\"openPrice\":20.90},{\"code\":\"sh601606\","
            + "\"beforeClosePrice\":11.16,\"openPrice\":11.18},{\"code\":\"sh603583\",\"beforeClosePrice\":23.23,"
            + "\"openPrice\":23.46},{\"code\":\"sz002928\",\"beforeClosePrice\":7.21,\"openPrice\":7.21},"
            + "{\"code\":\"sz002851\",\"beforeClosePrice\":59.24,\"openPrice\":59.98},{\"code\":\"sh601375\","
            + "\"beforeClosePrice\":4.01,\"openPrice\":4.01},{\"code\":\"sh601886\",\"beforeClosePrice\":5.29,"
            + "\"openPrice\":5.29},{\"code\":\"sh600059\",\"beforeClosePrice\":8.44,\"openPrice\":8.43},"
            + "{\"code\":\"sz000913\",\"beforeClosePrice\":17.98,\"openPrice\":17.86},{\"code\":\"sz002428\","
            + "\"beforeClosePrice\":17.90,\"openPrice\":17.91},{\"code\":\"sh603896\",\"beforeClosePrice\":20.05,"
            + "\"openPrice\":20.15},{\"code\":\"sh600929\",\"beforeClosePrice\":5.43,\"openPrice\":5.43},"
            + "{\"code\":\"sh600422\",\"beforeClosePrice\":16.17,\"openPrice\":16.02},{\"code\":\"sh603876\","
            + "\"beforeClosePrice\":8.57,\"openPrice\":8.55},{\"code\":\"sh600211\",\"beforeClosePrice\":36.50,"
            + "\"openPrice\":36.51},{\"code\":\"sh603733\",\"beforeClosePrice\":19.82,\"openPrice\":19.94},"
            + "{\"code\":\"sz002261\",\"beforeClosePrice\":17.69,\"openPrice\":17.61},{\"code\":\"sh603666\","
            + "\"beforeClosePrice\":21.44,\"openPrice\":21.68},{\"code\":\"sh600596\",\"beforeClosePrice\":8.60,"
            + "\"openPrice\":8.59},{\"code\":\"sh600933\",\"beforeClosePrice\":15.16,\"openPrice\":15.16},"
            + "{\"code\":\"sh600966\",\"beforeClosePrice\":4.87,\"openPrice\":4.87},{\"code\":\"sz000810\","
            + "\"beforeClosePrice\":12.46,\"openPrice\":12.43},{\"code\":\"sh600295\",\"beforeClosePrice\":9.65,"
            + "\"openPrice\":9.61},{\"code\":\"sh603466\",\"beforeClosePrice\":8.13,\"openPrice\":8.20},"
            + "{\"code\":\"sz000030\",\"beforeClosePrice\":4.93,\"openPrice\":4.92},{\"code\":\"sz000923\","
            + "\"beforeClosePrice\":13.64,\"openPrice\":13.62},{\"code\":\"sh601908\",\"beforeClosePrice\":2.79,"
            + "\"openPrice\":2.78},{\"code\":\"sz002267\",\"beforeClosePrice\":8.15,\"openPrice\":8.13},"
            + "{\"code\":\"sz000935\",\"beforeClosePrice\":13.73,\"openPrice\":13.73},{\"code\":\"sz002727\","
            + "\"beforeClosePrice\":12.56,\"openPrice\":12.60},{\"code\":\"sz002061\",\"beforeClosePrice\":3.94,"
            + "\"openPrice\":3.92},{\"code\":\"sh603801\",\"beforeClosePrice\":11.90,\"openPrice\":11.75},"
            + "{\"code\":\"sh600055\",\"beforeClosePrice\":14.55,\"openPrice\":14.55},{\"code\":\"sh603533\","
            + "\"beforeClosePrice\":18.65,\"openPrice\":18.74},{\"code\":\"sh601949\",\"beforeClosePrice\":6.78,"
            + "\"openPrice\":6.78},{\"code\":\"sh600217\",\"beforeClosePrice\":5.08,\"openPrice\":5.08},"
            + "{\"code\":\"sh603920\",\"beforeClosePrice\":28.82,\"openPrice\":28.80},{\"code\":\"sh603881\","
            + "\"beforeClosePrice\":17.65,\"openPrice\":17.78},{\"code\":\"sz000560\",\"beforeClosePrice\":2.90,"
            + "\"openPrice\":2.90},{\"code\":\"sh603113\",\"beforeClosePrice\":5.42,\"openPrice\":5.40},"
            + "{\"code\":\"sz000550\",\"beforeClosePrice\":22.40,\"openPrice\":22.45},{\"code\":\"sh603323\","
            + "\"beforeClosePrice\":5.12,\"openPrice\":5.11},{\"code\":\"sz002237\",\"beforeClosePrice\":10.16,"
            + "\"openPrice\":10.16},{\"code\":\"sh603043\",\"beforeClosePrice\":15.90,\"openPrice\":15.78},"
            + "{\"code\":\"sz000951\",\"beforeClosePrice\":17.41,\"openPrice\":17.43},{\"code\":\"sh600252\","
            + "\"beforeClosePrice\":2.41,\"openPrice\":2.40},{\"code\":\"sh600783\",\"beforeClosePrice\":11.84,"
            + "\"openPrice\":11.85},{\"code\":\"sh600997\",\"beforeClosePrice\":6.56,\"openPrice\":6.56},"
            + "{\"code\":\"sh603298\",\"beforeClosePrice\":18.69,\"openPrice\":18.51},{\"code\":\"sh600252\","
            + "\"beforeClosePrice\":2.41,\"openPrice\":2.40},{\"code\":\"sh600783\",\"beforeClosePrice\":11.84,"
            + "\"openPrice\":11.85},{\"code\":\"sh600997\",\"beforeClosePrice\":6.56,\"openPrice\":6.56},"
            + "{\"code\":\"sh603298\",\"beforeClosePrice\":18.69,\"openPrice\":18.51},{\"code\":\"sh603919\","
            + "\"beforeClosePrice\":18.18,\"openPrice\":18.20},{\"code\":\"sh603108\",\"beforeClosePrice\":14.74,"
            + "\"openPrice\":14.80},{\"code\":\"sz000603\",\"beforeClosePrice\":12.07,\"openPrice\":12.07},"
            + "{\"code\":\"sz000688\",\"beforeClosePrice\":11.39,\"openPrice\":11.41},{\"code\":\"sz000059\","
            + "\"beforeClosePrice\":4.45,\"openPrice\":4.46},{\"code\":\"sz002675\",\"beforeClosePrice\":12.39,"
            + "\"openPrice\":12.35},{\"code\":\"sh600072\",\"beforeClosePrice\":12.58,\"openPrice\":12.61},"
            + "{\"code\":\"sh600477\",\"beforeClosePrice\":2.49,\"openPrice\":2.48},{\"code\":\"sh600876\","
            + "\"beforeClosePrice\":8.99,\"openPrice\":9.12},{\"code\":\"sh600110\",\"beforeClosePrice\":3.77,"
            + "\"openPrice\":3.78},{\"code\":\"sh600641\",\"beforeClosePrice\":14.35,\"openPrice\":14.38},"
            + "{\"code\":\"sh601011\",\"beforeClosePrice\":3.13,\"openPrice\":2.94},{\"code\":\"sz000735\","
            + "\"beforeClosePrice\":5.93,\"openPrice\":5.97},{\"code\":\"sz002488\",\"beforeClosePrice\":10.35,"
            + "\"openPrice\":10.27},{\"code\":\"sz002747\",\"beforeClosePrice\":16.62,\"openPrice\":16.69},"
            + "{\"code\":\"sh600986\",\"beforeClosePrice\":5.43,\"openPrice\":5.44},{\"code\":\"sh603588\","
            + "\"beforeClosePrice\":5.03,\"openPrice\":5.02},{\"code\":\"sh603979\",\"beforeClosePrice\":38.38,"
            + "\"openPrice\":38.38},{\"code\":\"sh603997\",\"beforeClosePrice\":10.94,\"openPrice\":11.55},"
            + "{\"code\":\"sz000657\",\"beforeClosePrice\":8.88,\"openPrice\":8.88},{\"code\":\"sz002226\","
            + "\"beforeClosePrice\":5.41,\"openPrice\":5.41},{\"code\":\"sz002737\",\"beforeClosePrice\":21.39,"
            + "\"openPrice\":21.03},{\"code\":\"sh600123\",\"beforeClosePrice\":8.26,\"openPrice\":8.24},"
            + "{\"code\":\"sh600491\",\"beforeClosePrice\":3.45,\"openPrice\":3.47},{\"code\":\"sh603609\","
            + "\"beforeClosePrice\":8.31,\"openPrice\":8.31},{\"code\":\"sh603609\",\"beforeClosePrice\":8.31,"
            + "\"openPrice\":8.31},{\"code\":\"sh603678\",\"beforeClosePrice\":27.72,\"openPrice\":27.69},"
            + "{\"code\":\"sh600711\",\"beforeClosePrice\":4.72,\"openPrice\":4.74},{\"code\":\"sh600449\","
            + "\"beforeClosePrice\":13.24,\"openPrice\":13.47},{\"code\":\"sz002726\",\"beforeClosePrice\":7.40,"
            + "\"openPrice\":7.38},{\"code\":\"sz002378\",\"beforeClosePrice\":6.40,\"openPrice\":6.37},"
            + "{\"code\":\"sz002171\",\"beforeClosePrice\":8.08,\"openPrice\":8.10},{\"code\":\"sz000902\","
            + "\"beforeClosePrice\":12.88,\"openPrice\":12.93},{\"code\":\"sz000035\",\"beforeClosePrice\":4.57,"
            + "\"openPrice\":4.56},{\"code\":\"sh600323\",\"beforeClosePrice\":23.37,\"openPrice\":23.40},"
            + "{\"code\":\"sh600662\",\"beforeClosePrice\":4.75,\"openPrice\":4.70},{\"code\":\"sz002215\","
            + "\"beforeClosePrice\":10.12,\"openPrice\":10.13},{\"code\":\"sh600420\",\"beforeClosePrice\":11.83,"
            + "\"openPrice\":11.80},{\"code\":\"sz002649\",\"beforeClosePrice\":10.79,\"openPrice\":10.83},"
            + "{\"code\":\"sz002643\",\"beforeClosePrice\":10.36,\"openPrice\":10.06},{\"code\":\"sz002697\","
            + "\"beforeClosePrice\":5.50,\"openPrice\":5.58},{\"code\":\"sh600363\",\"beforeClosePrice\":44.12,"
            + "\"openPrice\":44.33},{\"code\":\"sh600559\",\"beforeClosePrice\":18.89,\"openPrice\":18.94},"
            + "{\"code\":\"sh600391\",\"beforeClosePrice\":17.57,\"openPrice\":17.57},{\"code\":\"sz000789\","
            + "\"beforeClosePrice\":4.80,\"openPrice\":4.80},{\"code\":\"sz002421\",\"beforeClosePrice\":3.08,"
            + "\"openPrice\":3.10},{\"code\":\"sz002605\",\"beforeClosePrice\":24.59,\"openPrice\":24.60},"
            + "{\"code\":\"sz002643\",\"beforeClosePrice\":10.36,\"openPrice\":10.06},{\"code\":\"sz002697\","
            + "\"beforeClosePrice\":5.50,\"openPrice\":5.58},{\"code\":\"sh600363\",\"beforeClosePrice\":44.12,"
            + "\"openPrice\":44.33},{\"code\":\"sh600559\",\"beforeClosePrice\":18.89,\"openPrice\":18.94},"
            + "{\"code\":\"sh600604\",\"beforeClosePrice\":4.37,\"openPrice\":4.37},{\"code\":\"sz002126\","
            + "\"beforeClosePrice\":17.87,\"openPrice\":17.88},{\"code\":\"sz002597\",\"beforeClosePrice\":23.20,"
            + "\"openPrice\":23.20},{\"code\":\"sz000058\",\"beforeClosePrice\":7.38,\"openPrice\":7.36},"
            + "{\"code\":\"sz002516\",\"beforeClosePrice\":4.72,\"openPrice\":4.72},{\"code\":\"sz002677\","
            + "\"beforeClosePrice\":7.13,\"openPrice\":7.15},{\"code\":\"sz002182\",\"beforeClosePrice\":10.79,"
            + "\"openPrice\":10.73},{\"code\":\"sz002617\",\"beforeClosePrice\":6.71,\"openPrice\":6.71},"
            + "{\"code\":\"sz002446\",\"beforeClosePrice\":6.15,\"openPrice\":6.16},{\"code\":\"sz000811\","
            + "\"beforeClosePrice\":11.18,\"openPrice\":11.13},{\"code\":\"sz000901\",\"beforeClosePrice\":10.05,"
            + "\"openPrice\":10.09},{\"code\":\"sh600285\",\"beforeClosePrice\":21.51,\"openPrice\":21.39},"
            + "{\"code\":\"sh600063\",\"beforeClosePrice\":3.88,\"openPrice\":3.89},{\"code\":\"sz002108\","
            + "\"beforeClosePrice\":3.47,\"openPrice\":3.46},{\"code\":\"sh600360\",\"beforeClosePrice\":4.29,"
            + "\"openPrice\":4.31},{\"code\":\"sz002626\",\"beforeClosePrice\":14.67,\"openPrice\":14.74},"
            + "{\"code\":\"sh600621\",\"beforeClosePrice\":14.40,\"openPrice\":14.40},{\"code\":\"sz000875\","
            + "\"beforeClosePrice\":5.06,\"openPrice\":5.06},{\"code\":\"sh603008\",\"beforeClosePrice\":16.28,"
            + "\"openPrice\":16.30},{\"code\":\"sh600116\",\"beforeClosePrice\":6.85,\"openPrice\":6.86},"
            + "{\"code\":\"sz002245\",\"beforeClosePrice\":12.36,\"openPrice\":12.00},{\"code\":\"sh600480\","
            + "\"beforeClosePrice\":10.05,\"openPrice\":10.10},{\"code\":\"sz002307\",\"beforeClosePrice\":3.51,"
            + "\"openPrice\":3.60},{\"code\":\"sz002222\",\"beforeClosePrice\":30.24,\"openPrice\":30.15},"
            + "{\"code\":\"sz002139\",\"beforeClosePrice\":12.34,\"openPrice\":12.34}]";

        List<StockDayData> stockDayDataList = JSON.parseArray(json, StockDayData.class);
        Collections.sort(stockDayDataList, Comparator.comparing(StockDayData::getCode));
        EmotionData emotionData = caculateOpenEmotion(stockDayDataList);
        System.out.println(JSON.toJSONString(emotionData));
        //{"currentValue":-0.63,"emotionValue":3,"highValue":0.29,"lowValue":-0.59,"maxValue":0.70,"minValue":-0.97}
        List<StockDayData> stockDayDataList2 = JSON.parseArray(json2, StockDayData.class);
        Collections.sort(stockDayDataList2, Comparator.comparing(StockDayData::getCode));
        EmotionData emotionData2 = caculateOpenEmotion(stockDayDataList2);
        System.out.println(JSON.toJSONString(emotionData2));
        System.out.println(stockDayDataList.size() + "-" + stockDayDataList2.size());
        for (StockDayData stockDayData : stockDayDataList) {
            StockDayData fenshiData = stockDayDataList2.stream().filter(
                data -> data.getCode().equals(stockDayData.getCode())).findFirst().orElse(null);
            boolean beforeClosePriceFlag = BigDecimalUtils.eq(stockDayData.getBeforeClosePrice(),
                fenshiData.getBeforeClosePrice());
            boolean openPriceFlag = BigDecimalUtils.eq(stockDayData.getOpenPrice(), fenshiData.getOpenPrice());
            if (!beforeClosePriceFlag || !openPriceFlag) {
                System.out.println(stockDayData.getCode() + "-beforeClose:" + stockDayData.getBeforeClosePrice() + "-"
                    + fenshiData.getBeforeClosePrice() + ",openPrice:" + stockDayData.getOpenPrice() + "-"
                    + fenshiData.getOpenPrice() + "," + beforeClosePriceFlag + "-"
                    + openPriceFlag);
            }
        }
        //{"currentValue":-0.63,"emotionValue":3,"highValue":0.29,"lowValue":-0.59,"maxValue":0.70,"minValue":-0.97}
    }
}
